/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package py.com.mblj.domain;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 *
 * @author markos
 */
@Entity
@Table(name = "denuncias")
@NamedQueries({@NamedQuery(name = "Denuncias.findAll", query = "SELECT d FROM Denuncias d"), @NamedQuery(name = "Denuncias.findByDeDenuncia", query = "SELECT d FROM Denuncias d WHERE d.deDenuncia = :deDenuncia"), @NamedQuery(name = "Denuncias.findByDeFechaHora", query = "SELECT d FROM Denuncias d WHERE d.deFechaHora = :deFechaHora"), @NamedQuery(name = "Denuncias.findByDeTexto", query = "SELECT d FROM Denuncias d WHERE d.deTexto = :deTexto"), @NamedQuery(name = "Denuncias.findByDeConcurrencia", query = "SELECT d FROM Denuncias d WHERE d.deConcurrencia = :deConcurrencia"), @NamedQuery(name = "Denuncias.findByDeObservacion", query = "SELECT d FROM Denuncias d WHERE d.deObservacion = :deObservacion"), @NamedQuery(name = "Denuncias.findByDeEstado", query = "SELECT d FROM Denuncias d WHERE d.deEstado = :deEstado")})
public class Denuncias implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "de_denuncia")
    private Integer deDenuncia;
    @Column(name = "de_fecha_hora")
    @Temporal(TemporalType.TIMESTAMP)
    private Date deFechaHora;
    @Column(name = "de_texto")
    private String deTexto;
    @Column(name = "de_concurrencia")
    private Integer deConcurrencia;
    @Column(name = "de_observacion")
    private String deObservacion;
    @Column(name = "de_estado")
    private Character deEstado;
    @JoinColumn(name = "ba_barrio", referencedColumnName = "ba_barrio")
    @ManyToOne(optional = false, fetch = FetchType.LAZY)
    private Barrios baBarrio;
    @JoinColumn(name = "de_causa", referencedColumnName = "ca_causa")
    @ManyToOne(optional = false, fetch = FetchType.LAZY)
    private Causas deCausa;
    @JoinColumn(name = "ci_ciudad", referencedColumnName = "ci_ciudad")
    @ManyToOne(optional = false, fetch = FetchType.LAZY)
    private Ciudades ciCiudad;
    @JoinColumn(name = "dp_departamento", referencedColumnName = "dp_departamento")
    @ManyToOne(optional = false, fetch = FetchType.LAZY)
    private Departamentos dpDepartamento;
    @JoinColumn(name = "de_derivacion", referencedColumnName = "dr_derivacion")
    @ManyToOne(optional = false, fetch = FetchType.LAZY)
    private Derivaciones deDerivacion;
    @JoinColumn(name = "de_instancia", referencedColumnName = "in_instancia")
    @ManyToOne(optional = false, fetch = FetchType.LAZY)
    private Instancias deInstancia;
    @JoinColumn(name = "de_medio", referencedColumnName = "me_medio")
    @ManyToOne(optional = false, fetch = FetchType.LAZY)
    private Medios deMedio;
    @JoinColumn(name = "de_responsable", referencedColumnName = "re_id")
    @ManyToOne(optional = false, fetch = FetchType.LAZY)
    private Responsables deResponsable;
    @JoinColumn(name = "de_sector", referencedColumnName = "sp_sector")
    @ManyToOne(optional = false, fetch = FetchType.LAZY)
    private Sector deSector;
    @JoinColumn(name = "de_tipo", referencedColumnName = "ti_tipo")
    @ManyToOne(optional = false, fetch = FetchType.LAZY)
    private Tipos deTipo;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "denuncias", fetch = FetchType.LAZY)
    private List<PersonaDenuncia> personaDenunciaList;

    public Denuncias() {
    }

    public Denuncias(Integer deDenuncia) {
        this.deDenuncia = deDenuncia;
    }

    public Integer getDeDenuncia() {
        return deDenuncia;
    }

    public void setDeDenuncia(Integer deDenuncia) {
        this.deDenuncia = deDenuncia;
    }

    public Date getDeFechaHora() {
        return deFechaHora;
    }

    public void setDeFechaHora(Date deFechaHora) {
        this.deFechaHora = deFechaHora;
    }

    public String getDeTexto() {
        return deTexto;
    }

    public void setDeTexto(String deTexto) {
        this.deTexto = deTexto;
    }

    public Integer getDeConcurrencia() {
        return deConcurrencia;
    }

    public void setDeConcurrencia(Integer deConcurrencia) {
        this.deConcurrencia = deConcurrencia;
    }

    public String getDeObservacion() {
        return deObservacion;
    }

    public void setDeObservacion(String deObservacion) {
        this.deObservacion = deObservacion;
    }

    public Character getDeEstado() {
        return deEstado;
    }

    public void setDeEstado(Character deEstado) {
        this.deEstado = deEstado;
    }

    public Barrios getBaBarrio() {
        return baBarrio;
    }

    public void setBaBarrio(Barrios baBarrio) {
        this.baBarrio = baBarrio;
    }

    public Causas getDeCausa() {
        return deCausa;
    }

    public void setDeCausa(Causas deCausa) {
        this.deCausa = deCausa;
    }

    public Ciudades getCiCiudad() {
        return ciCiudad;
    }

    public void setCiCiudad(Ciudades ciCiudad) {
        this.ciCiudad = ciCiudad;
    }

    public Departamentos getDpDepartamento() {
        return dpDepartamento;
    }

    public void setDpDepartamento(Departamentos dpDepartamento) {
        this.dpDepartamento = dpDepartamento;
    }

    public Derivaciones getDeDerivacion() {
        return deDerivacion;
    }

    public void setDeDerivacion(Derivaciones deDerivacion) {
        this.deDerivacion = deDerivacion;
    }

    public Instancias getDeInstancia() {
        return deInstancia;
    }

    public void setDeInstancia(Instancias deInstancia) {
        this.deInstancia = deInstancia;
    }

    public Medios getDeMedio() {
        return deMedio;
    }

    public void setDeMedio(Medios deMedio) {
        this.deMedio = deMedio;
    }

    public Responsables getDeResponsable() {
        return deResponsable;
    }

    public void setDeResponsable(Responsables deResponsable) {
        this.deResponsable = deResponsable;
    }

    public Sector getDeSector() {
        return deSector;
    }

    public void setDeSector(Sector deSector) {
        this.deSector = deSector;
    }

    public Tipos getDeTipo() {
        return deTipo;
    }

    public void setDeTipo(Tipos deTipo) {
        this.deTipo = deTipo;
    }

    public List<PersonaDenuncia> getPersonaDenunciaList() {
        return personaDenunciaList;
    }

    public void setPersonaDenunciaList(List<PersonaDenuncia> personaDenunciaList) {
        this.personaDenunciaList = personaDenunciaList;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (deDenuncia != null ? deDenuncia.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Denuncias)) {
            return false;
        }
        Denuncias other = (Denuncias) object;
        if ((this.deDenuncia == null && other.deDenuncia != null) || (this.deDenuncia != null && !this.deDenuncia.equals(other.deDenuncia))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "py.com.mblj.domain.Denuncias[deDenuncia=" + deDenuncia + "]";
    }

}
